package models;

import java.util.Calendar;
import java.util.GregorianCalendar;

import play.db.jpa.Model;

public class Usuario {
	protected String nomeUsuario;
	protected String senha;
	protected boolean ativo;
	protected int tentativasLogin;
	protected TipoUsuario tipoUsuario;
	protected Calendar dataCadastro;
	protected String cadastradoPor;
	protected Calendar dataUltimaAlteracao;
	protected String usuarioUltimaAlteracao;
	protected boolean bloqueado;
	
	
	
	public Usuario(String nomeUsuario, String senha, boolean ativo,boolean bloqueado,
			int tentativasLogin, TipoUsuario tipoUsuario){
		
		this.nomeUsuario = nomeUsuario;
		this.senha = senha;
		this.ativo = ativo;
		this.tentativasLogin = tentativasLogin;
		this.tipoUsuario = tipoUsuario;
		this.tentativasLogin = 3;
		this.dataCadastro = new GregorianCalendar();
		this.bloqueado= bloqueado;
		
	}
	
	public String getNomeUsuario(){
		return this.nomeUsuario;
	}
	
	public String getSenha(){
		return this.senha;
	}
	
	public boolean estaAtivo(){
		return this.ativo;
	}
	
	public void setAtivo(boolean ativo){
		this.ativo = ativo;
	}
	
	public void setSenha(String senha){
		this.senha = senha;
	}
	
	public TipoUsuario getTipo(){
		return this.tipoUsuario;
	}
	
	public int getTentativasLogin(){
		return this.tentativasLogin;
	}
	
	public void setTentativasLogin(int tentativas){
		if(tentativas > 0){
		    this.tentativasLogin = tentativas;
		}else{
			this.bloqueado=true;
		}
	}
	
	public Calendar getDataCadastro(){
		return this.dataCadastro;
	}
	
	public Calendar getDataUltimaAlteracao(){
		return this.dataUltimaAlteracao;
	}
	
	public String getUsuarioUltimaAlteracao(){
		return this.usuarioUltimaAlteracao;
	}
	
	public boolean estaBloqueado(){
		return this.bloqueado;
	}
	
	public void setBloqueio(boolean bloqueado){
		this.bloqueado = bloqueado;
	}

}
